package com.booksystem.service;

import com.booksystem.common.RestResult;
import com.booksystem.dto.*;
import com.booksystem.dto.CategoryAddDTO;
import com.booksystem.dto.CategoryDeleteDTO;
import com.booksystem.dto.CategoryEditDTO;
import com.booksystem.dto.CategoryQueryDetailDTO;
import com.booksystem.dto.CategoryQueryListDTO;
import com.booksystem.entity.CategoryDO;
import java.util.List;

/**
 * <p>
 * 商品分类信息服务接口
 * </p>
 * @author 段伟豪
 */
public interface CategoryService {

    /**
     * 新增商品分类
     * @param categoryAddDTO 新增分类参数
     * @return RestResult 结果集
     */
    RestResult<Boolean> addCategory(CategoryAddDTO categoryAddDTO);

    /**
     * 编辑商品分类
     * @param categoryEditDTO 编辑分类参数
     * @return RestResult 结果集
     */
    RestResult<Boolean> editCategory(CategoryEditDTO categoryEditDTO);

    /**
     * 删除商品分类
     * @param categoryDeleteDTO 删除分类参数
     * @return RestResult 结果集
     */
    RestResult<Boolean> deleteCategory(CategoryDeleteDTO categoryDeleteDTO);

    /**
     * 查询商品分类列表
     * @param categoryQueryListDTO 查询参数
     * @return RestResult 结果集
     */
    RestResult<List<CategoryDO>> listCategories(CategoryQueryListDTO categoryQueryListDTO);

    /**
     * 查询商品分类详情
     * @param categoryQueryDetailDTO 查询参数
     * @return RestResult 结果集
     */
    RestResult<CategoryDO> getCategoryDetail(CategoryQueryDetailDTO categoryQueryDetailDTO);
}